﻿#pragma once
#include "OpenGL项目主标头.h"
#include "OpenGL测试类标头.h"
#include "OpenGL渲染器类标头.h"
// C/C++ 标准库学习网站：https://legacy.cplusplus.com
// C/C++ 参考学习网站：https://zh.cppreference.com/w/cpp
// C/C++ 微软(Visual Studio)中文学习网站：https://learn.microsoft.com/zh-cn/cpp/cpp/?view=msvc-170
// OpenGl 学习网站：https://www.khronos.org/opengl/wiki
// OpenGl 的 GLFW 学习网站：https://www.glfw.org/docs/latest/glfw3_8h.html#ac06b663d79c8fcf04669cc8fcc0b7670
// OpenGl 的 GLEW 学习网站：https://docs.gl/

namespace my_test {
	// Test 类
	Test::Test() {}

	// TestMenu 类
	void TestMenu::up_date(float delta_time) {

	}

	void TestMenu::render() {
		for (/*auto& test : m_tests*/int i = 0; i < m_tests.size(); i++) {
			auto& test = m_tests[i];
			if (!test.first && ImGui::Button(test.second.first.c_str(), ImVec2(150, 30)))
				test.first = true;
			else if (test.first)
			{
				const_cast<Test*>(test.second.second)->render();
				if (ImGui::Button(std::string("Back " + std::to_string(i + 1)).c_str(), ImVec2(150, 30)))
					test.first = false;
			}
			ImGui::Separator(); // 分割线
		}
	}

	void TestMenu::imgui_render() {

	}

	/*template<typename Ty>
	void TestMenu::register_test(const std::string& name) {
		m_tests.push_back(std::make_pair( name, []() {return new Ty();} ));
	}*/
}
